枚举
枚举(Enum)是 C#中的一种数据类型,用于定义具有固定数目的命名常量。枚举可以使代码更加可读,更易于理解和维护,而不需要使用魔法数字(magic numbers)。在 C# 中,枚举是一种值类型(value type)。
using System;
namespace EnumExample
{
class Program
{
/// <summary>
/// 定义一个枚举,包含七个命名常量,分别代表每个星期的天
/// </summary>
enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
static void Main(string[] args)
{
DaysOfWeek today = DaysOfWeek.Wednesday; // 将枚举的一个常量赋值给 today 变量
Console.WriteLine($"Today is {today}"); // 打印 today 变量的值
if (today == DaysOfWeek.Saturday || today == DaysOfWeek.Sunday) // 检查今天是不是周末
{
Console.WriteLine("It's the weekend!");
}
else
{
Console.WriteLine("It's a weekday.");
}
}
}
}
// 输出
// Today is Wednesday
// It's a weekday.
在 C# 中,枚举可以具有底层类型(underlying type),默认为整数类型(int)。也可以指定其他整数类型,例如 byte、short、long 等。以下是一个具有不同底层类型的枚举的示例:
enum Color : byte
{
Red = 1,
Green = 2,
Blue = 3
}
enum Size : short
{
Small = 1,
Medium = 2,
Large = 3
}
在上面的示例中,我们定义了两个枚举,一个具有 byte 类型的底层类型,另一个具有 short 类型的底层类型。在这些枚举中,每个常量都有一个指定的值,可以是任何类型的常量表达式。
using System;
namespace EnumExample
{
/// <summary>
/// 定义一个枚举,包含七个命名常量,分别代表每个星期的天
/// </summary>
enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
class Program
{
static void Main(string[] args)
{
DaysOfWeek today = DaysOfWeek.Tuesday; // 将枚举的一个常量赋值给 today 变量
string todayName = today.ToString(); // 使用 ToString 方法来获取枚举常量的名称
int todayValue = (int)today; // 使用强制类型转换将枚举常量的值转换为整数类型
// 打印 today 变量的值
// 输出中的 Tuesday 的值为 1,因为枚举常量的默认值为整数,从 0 开始,每个常量增加 1
Console.WriteLine("Today is {0} ({1})", todayName, todayValue);
}
}
}
// 输出
// Today is Tuesday (1)
总之,C#中的枚举是一种用于定义具有固定数目的命名常量的数据类型。枚举可以使代码更易于理解和维护,并且可以具有不同的底层类型和值。